export const STRING_TYPE = 'String';
export const NUMBER_TYPE = 'Number';
export const ARRAY_TYPE = 'Array';
export const OBJECT_TYPE = 'Object';
export const BOOLEAN_TYPE = 'Boolean';
export const ANY_TYPE = 'Any';

export const SCHEMA_TYPE = [
  STRING_TYPE,
  NUMBER_TYPE,
  ARRAY_TYPE,
  OBJECT_TYPE,
  BOOLEAN_TYPE,
  ANY_TYPE,
];

export const RULES = {
  required: {
    type: 'required',
  },
  length: {
    type: 'length',
  },
  range: {
    type: 'range',
  },
  regex: {
    type: 'regex',
  },
  enums: {
    type: 'enums',
  },
  formatter: {
    type: 'formatter',
  },
  not_empty: {
    type: 'not_empty',
  },
  not_blank: {
    type: 'not_blank',
  },
  custom: {
    type: 'custom',
  },
};

export const RULE_TYPES = [
  {
    title: '必填',
    value: RULES.required.type,
  },
  {
    title: '非空',
    value: RULES.not_empty.type,
  },
  {
    title: '非空白字符串',
    value: RULES.not_blank.type,
  },
  {
    title: '长度',
    value: RULES.length.type,
  },
  {
    title: '范围',
    value: RULES.range.type,
  },
  {
    title: '枚举',
    value: RULES.enums.type,
  },
  {
    title: '正则表达式',
    value: RULES.regex.type,
  },
  {
    title: '预期格式',
    value: RULES.formatter.type,
  },
  {
    title: '自定义规则',
    value: RULES.custom.type,
  },
];

export const FORMAT = [
  { name: 'INTEGER', title: '整数' },
  { name: 'PRICE', title: '价格' },
  { name: 'PHONE', title: '手机/电话' },
  { name: 'EMAIL', title: '邮箱' },
  { name: 'ID_CARD', title: '身份证' },
  { name: 'DATE', title: '日期' },
];

export const mockData = {
  nodeName: 'root',
  nodeType: 'Object',
  rules: [],
  children: [
    { nodeName: 'orderNbr', nodeType: 'String', rules: [] },
    { nodeName: 'orderType', nodeType: 'Number', rules: [] },
    { nodeName: 'orderId', nodeType: 'Number', rules: [] },
    {
      nodeName: 'orderReceiver',
      nodeType: 'Object',
      rules: [],
      children: [
        { nodeName: 'certType', nodeType: 'String', rules: [] },
        { nodeName: 'receiverName', nodeType: 'String', rules: [] },
        { nodeName: 'shipTime', nodeType: 'String', rules: [] },
        { nodeName: 'receiverCityCode', nodeType: 'String', rules: [] },
        { nodeName: 'receiverProvince', nodeType: 'String', rules: [] },
        { nodeName: 'receiverDetailAddress', nodeType: 'String', rules: [] },
        { nodeName: 'receiverCity', nodeType: 'String', rules: [] },
        { nodeName: 'receiverPhone', nodeType: 'String', rules: [] },
        { nodeName: 'receiverPostCode', nodeType: 'String', rules: [] },
        { nodeName: 'receiverRegion', nodeType: 'String', rules: [] },
        { nodeName: 'certNum', nodeType: 'String', rules: [] },
        { nodeName: 'receiverProvinceCode', nodeType: 'String', rules: [] },
        { nodeName: 'memberId', nodeType: 'String', rules: [] },
      ],
    },
    { nodeName: 'memberUserName', nodeType: 'String', rules: [] },
    { nodeName: 'discountAmount', nodeType: 'Number', rules: [] },
    {
      nodeName: 'orderCoupon',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'couponName', nodeType: 'String', rules: [] },
            { nodeName: 'couponId', nodeType: 'Number', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'urgencyLevel', nodeType: 'String', rules: [] },
    { nodeName: 'claimType', nodeType: 'Number', rules: [] },
    { nodeName: 'payAmount', nodeType: 'Number', rules: [] },
    { nodeName: 'payType', nodeType: 'String', rules: [] },
    { nodeName: 'orderBusiType', nodeType: 'String', rules: [] },
    { nodeName: 'col8', nodeType: 'String', rules: [] },
    { nodeName: 'col9', nodeType: 'String', rules: [] },
    { nodeName: 'col6', nodeType: 'String', rules: [] },
    { nodeName: 'col7', nodeType: 'String', rules: [] },
    { nodeName: 'col4', nodeType: 'String', rules: [] },
    { nodeName: 'col5', nodeType: 'String', rules: [] },
    {
      nodeName: 'ordSubscriberList',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'serviceType', nodeType: 'String', rules: [] },
            { nodeName: 'orderItemsId', nodeType: 'String', rules: [] },
            { nodeName: 'orderId', nodeType: 'String', rules: [] },
            { nodeName: 'provinceCode', nodeType: 'String', rules: [] },
            { nodeName: 'extUserId', nodeType: 'String', rules: [] },
            { nodeName: 'lanId', nodeType: 'String', rules: [] },
            { nodeName: 'useCustId', nodeType: 'String', rules: [] },
            { nodeName: 'addrName', nodeType: 'String', rules: [] },
            { nodeName: 'serviceOfferCode', nodeType: 'String', rules: [] },
            { nodeName: 'actDate', nodeType: 'String', rules: [] },
            {
              nodeName: 'attrs',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'password', nodeType: 'String', rules: [] },
            { nodeName: 'regionId', nodeType: 'String', rules: [] },
            { nodeName: 'grade', nodeType: 'String', rules: [] },
            { nodeName: 'addrId', nodeType: 'String', rules: [] },
            { nodeName: 'serviceNo', nodeType: 'String', rules: [] },
            { nodeName: 'extInstanceId', nodeType: 'String', rules: [] },
            { nodeName: 'brand', nodeType: 'String', rules: [] },
            { nodeName: 'status', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'col2', nodeType: 'String', rules: [] },
    { nodeName: 'col3', nodeType: 'String', rules: [] },
    { nodeName: 'memberId', nodeType: 'Number', rules: [] },
    { nodeName: 'col1', nodeType: 'String', rules: [] },
    { nodeName: 'extraValues', nodeType: 'String', rules: [] },
    { nodeName: 'finalAmountStartTime', nodeType: 'String', rules: [] },
    {
      nodeName: 'ordContracts',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'statusDate', nodeType: 'String', rules: [] },
            { nodeName: 'signFree', nodeType: 'String', rules: [] },
            { nodeName: 'contractSource', nodeType: 'String', rules: [] },
            { nodeName: 'orderId', nodeType: 'String', rules: [] },
            { nodeName: 'contractType', nodeType: 'String', rules: [] },
            { nodeName: 'lanId', nodeType: 'String', rules: [] },
            { nodeName: 'signDate', nodeType: 'String', rules: [] },
            { nodeName: 'renewalCycle', nodeType: 'String', rules: [] },
            { nodeName: 'archiveDate', nodeType: 'String', rules: [] },
            { nodeName: 'col4', nodeType: 'String', rules: [] },
            { nodeName: 'contractName', nodeType: 'String', rules: [] },
            { nodeName: 'busiType', nodeType: 'String', rules: [] },
            { nodeName: 'col2', nodeType: 'String', rules: [] },
            { nodeName: 'col3', nodeType: 'String', rules: [] },
            {
              nodeName: 'orderAttachment',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'instType', nodeType: 'String', rules: [] },
                    { nodeName: 'attachmentSubType', nodeType: 'String', rules: [] },
                    { nodeName: 'attachmentUrl', nodeType: 'String', rules: [] },
                    { nodeName: 'tacheCode', nodeType: 'String', rules: [] },
                    { nodeName: 'attachmentType', nodeType: 'String', rules: [] },
                    { nodeName: 'orderStatus', nodeType: 'String', rules: [] },
                    { nodeName: 'attachmentName', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'lanName', nodeType: 'String', rules: [] },
            { nodeName: 'col1', nodeType: 'String', rules: [] },
            { nodeName: 'expirationDate', nodeType: 'String', rules: [] },
            { nodeName: 'sourceFrom', nodeType: 'String', rules: [] },
            { nodeName: 'contractStatus', nodeType: 'String', rules: [] },
            { nodeName: 'batchCode', nodeType: 'String', rules: [] },
            { nodeName: 'validityPeriodYear', nodeType: 'String', rules: [] },
            { nodeName: 'contractContent', nodeType: 'String', rules: [] },
            { nodeName: 'validityPeriodMonth', nodeType: 'String', rules: [] },
            { nodeName: 'serviceOfferCode', nodeType: 'String', rules: [] },
            {
              nodeName: 'attrs',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'busiTypeName', nodeType: 'String', rules: [] },
            { nodeName: 'contractCreateDate', nodeType: 'String', rules: [] },
            { nodeName: 'contractId', nodeType: 'String', rules: [] },
            { nodeName: 'autoRenewal', nodeType: 'String', rules: [] },
            { nodeName: 'prodInstId', nodeType: 'String', rules: [] },
            { nodeName: 'contractCode', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'createStaff', nodeType: 'Number', rules: [] },
    { nodeName: 'totalAmount', nodeType: 'Number', rules: [] },
    { nodeName: 'sourceType', nodeType: 'String', rules: [] },
    { nodeName: 'integration', nodeType: 'Number', rules: [] },
    { nodeName: 'col10', nodeType: 'String', rules: [] },
    { nodeName: 'extOrderNbr', nodeType: 'String', rules: [] },
    { nodeName: 'remark', nodeType: 'String', rules: [] },
    {
      nodeName: 'storeList',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            {
              nodeName: 'orderPromotion',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'promotionDetail', nodeType: 'String', rules: [] },
                    { nodeName: 'promotionName', nodeType: 'String', rules: [] },
                    { nodeName: 'promotionId', nodeType: 'Number', rules: [] },
                  ],
                },
              ],
            },
            {
              nodeName: 'orderDiscount',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'discountInfo', nodeType: 'String', rules: [] },
                    { nodeName: 'useIntegration', nodeType: 'Number', rules: [] },
                    { nodeName: 'discountAmount', nodeType: 'Number', rules: [] },
                    { nodeName: 'discountType', nodeType: 'Number', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'storeName', nodeType: 'String', rules: [] },
            {
              nodeName: 'orderInvoice',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'invoiceHeader', nodeType: 'String', rules: [] },
                    { nodeName: 'receiveTel', nodeType: 'String', rules: [] },
                    { nodeName: 'invoiceContent', nodeType: 'String', rules: [] },
                    { nodeName: 'storeTel', nodeType: 'String', rules: [] },
                    { nodeName: 'openBank', nodeType: 'String', rules: [] },
                    { nodeName: 'bankNo', nodeType: 'String', rules: [] },
                    { nodeName: 'headerType', nodeType: 'String', rules: [] },
                    { nodeName: 'invoiceType', nodeType: 'String', rules: [] },
                    { nodeName: 'receiveEmail', nodeType: 'String', rules: [] },
                    { nodeName: 'businessAddr', nodeType: 'String', rules: [] },
                    { nodeName: 'invoiceTaxNo', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'storeId', nodeType: 'Number', rules: [] },
            {
              nodeName: 'orderDeliveryInfos',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'expressTel', nodeType: 'String', rules: [] },
                    { nodeName: 'expressName', nodeType: 'String', rules: [] },
                    {
                      nodeName: 'orderDeliveryItem',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'skuName', nodeType: 'String', rules: [] },
                            { nodeName: 'deliveryNum', nodeType: 'String', rules: [] },
                            { nodeName: 'skuCode', nodeType: 'String', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'expressStatusTime', nodeType: 'String', rules: [] },
                    { nodeName: 'expressNo', nodeType: 'String', rules: [] },
                    { nodeName: 'expressCode', nodeType: 'String', rules: [] },
                    { nodeName: 'expressStatus', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            {
              nodeName: 'storeInfos',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'promotionPrice', nodeType: 'Number', rules: [] },
                    { nodeName: 'goodsId', nodeType: 'Number', rules: [] },
                    { nodeName: 'extUserInstId', nodeType: 'String', rules: [] },
                    { nodeName: 'skuPrice', nodeType: 'Number', rules: [] },
                    {
                      nodeName: 'orderCoupon',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'couponName', nodeType: 'String', rules: [] },
                            { nodeName: 'couponId', nodeType: 'Number', rules: [] },
                          ],
                        },
                      ],
                    },
                    {
                      nodeName: 'orderItemsAttr',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                            { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                            { nodeName: 'attrName', nodeType: 'String', rules: [] },
                          ],
                        },
                      ],
                    },
                    {
                      nodeName: 'orderPromotion',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'promotionDetail', nodeType: 'String', rules: [] },
                            { nodeName: 'promotionName', nodeType: 'String', rules: [] },
                            { nodeName: 'promotionId', nodeType: 'Number', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'realAmount', nodeType: 'Number', rules: [] },
                    { nodeName: 'skuName', nodeType: 'String', rules: [] },
                    { nodeName: 'col6', nodeType: 'String', rules: [] },
                    { nodeName: 'isGift', nodeType: 'String', rules: [] },
                    { nodeName: 'col4', nodeType: 'String', rules: [] },
                    { nodeName: 'col5', nodeType: 'String', rules: [] },
                    {
                      nodeName: 'ordMktResInst',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'resModel', nodeType: 'String', rules: [] },
                            { nodeName: 'orderItemsId', nodeType: 'String', rules: [] },
                            { nodeName: 'orderId', nodeType: 'String', rules: [] },
                            { nodeName: 'resType', nodeType: 'String', rules: [] },
                            { nodeName: 'subscriberId', nodeType: 'String', rules: [] },
                            { nodeName: 'remark', nodeType: 'String', rules: [] },
                            { nodeName: 'productInstCode', nodeType: 'String', rules: [] },
                            { nodeName: 'marketingResInstId', nodeType: 'String', rules: [] },
                            { nodeName: 'serviceOfferCode', nodeType: 'String', rules: [] },
                            { nodeName: 'resSubType', nodeType: 'String', rules: [] },
                            {
                              nodeName: 'attrs',
                              nodeType: 'Array',
                              rules: [],
                              children: [
                                {
                                  nodeName: 'item',
                                  nodeType: 'Object',
                                  rules: [],
                                  children: [
                                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                                  ],
                                },
                              ],
                            },
                            { nodeName: 'actionType', nodeType: 'String', rules: [] },
                            { nodeName: 'resName', nodeType: 'String', rules: [] },
                            { nodeName: 'resNbr', nodeType: 'String', rules: [] },
                            { nodeName: 'productInstId', nodeType: 'String', rules: [] },
                            { nodeName: 'col2', nodeType: 'String', rules: [] },
                            { nodeName: 'col3', nodeType: 'String', rules: [] },
                            { nodeName: 'resAddress', nodeType: 'String', rules: [] },
                            { nodeName: 'col1', nodeType: 'String', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'skuPicFileUrl', nodeType: 'Number', rules: [] },
                    { nodeName: 'col2', nodeType: 'String', rules: [] },
                    { nodeName: 'col3', nodeType: 'String', rules: [] },
                    { nodeName: 'goodsName', nodeType: 'String', rules: [] },
                    {
                      nodeName: 'orderAttachment',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'instType', nodeType: 'String', rules: [] },
                            { nodeName: 'attachmentSubType', nodeType: 'String', rules: [] },
                            { nodeName: 'attachmentUrl', nodeType: 'String', rules: [] },
                            { nodeName: 'tacheCode', nodeType: 'String', rules: [] },
                            { nodeName: 'attachmentType', nodeType: 'String', rules: [] },
                            { nodeName: 'orderStatus', nodeType: 'String', rules: [] },
                            { nodeName: 'attachmentName', nodeType: 'String', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'skuId', nodeType: 'Number', rules: [] },
                    { nodeName: 'col1', nodeType: 'String', rules: [] },
                    {
                      nodeName: 'orderItemsExt',
                      nodeType: 'Object',
                      rules: [],
                      children: [
                        { nodeName: 'goodsCityCode', nodeType: 'String', rules: [] },
                        { nodeName: 'goodsProvinceCode', nodeType: 'String', rules: [] },
                        { nodeName: 'extPartnerOrderItemNbr', nodeType: 'String', rules: [] },
                        { nodeName: 'serviceOfferCode', nodeType: 'String', rules: [] },
                        { nodeName: 'marketSaleName', nodeType: 'String', rules: [] },
                        { nodeName: 'marketSaleId', nodeType: 'String', rules: [] },
                        { nodeName: 'goodsProvince', nodeType: 'String', rules: [] },
                        { nodeName: 'appointmentTime', nodeType: 'String', rules: [] },
                        { nodeName: 'handleType', nodeType: 'String', rules: [] },
                        { nodeName: 'col8', nodeType: 'String', rules: [] },
                        { nodeName: 'col9', nodeType: 'String', rules: [] },
                        { nodeName: 'col10', nodeType: 'String', rules: [] },
                        { nodeName: 'extGoodsCode', nodeType: 'String', rules: [] },
                        { nodeName: 'goodsCity', nodeType: 'String', rules: [] },
                        { nodeName: 'col7', nodeType: 'String', rules: [] },
                        { nodeName: 'goodsCode', nodeType: 'String', rules: [] },
                        { nodeName: 'extOrderItemNbr', nodeType: 'String', rules: [] },
                      ],
                    },
                    {
                      nodeName: 'orderGiftCard',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'giftPayAmount', nodeType: 'Number', rules: [] },
                            { nodeName: 'giftCardType', nodeType: 'Number', rules: [] },
                            { nodeName: 'giftCardNo', nodeType: 'Number', rules: [] },
                          ],
                        },
                      ],
                    },
                    {
                      nodeName: 'skuRel',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'skuRelType', nodeType: 'Number', rules: [] },
                            { nodeName: 'skuCode', nodeType: 'String', rules: [] },
                            { nodeName: 'skuId', nodeType: 'Number', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'skuVipPrice', nodeType: 'Number', rules: [] },
                    {
                      nodeName: 'attrs',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                            { nodeName: 'endDate', nodeType: 'String', rules: [] },
                            { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                            { nodeName: 'attrName', nodeType: 'String', rules: [] },
                            { nodeName: 'startDate', nodeType: 'String', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'goodsType', nodeType: 'String', rules: [] },
                    { nodeName: 'skuQuantity', nodeType: 'Number', rules: [] },
                    {
                      nodeName: 'ordGroup',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            {
                              nodeName: 'attrs',
                              nodeType: 'Array',
                              rules: [],
                              children: [
                                {
                                  nodeName: 'item',
                                  nodeType: 'Object',
                                  rules: [],
                                  children: [
                                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                                  ],
                                },
                              ],
                            },
                          ],
                        },
                      ],
                    },
                    {
                      nodeName: 'ordProdInst',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'orderId', nodeType: 'String', rules: [] },
                            { nodeName: 'lanId', nodeType: 'String', rules: [] },
                            { nodeName: 'roleType', nodeType: 'String', rules: [] },
                            { nodeName: 'addrName', nodeType: 'String', rules: [] },
                            { nodeName: 'serviceApi', nodeType: 'String', rules: [] },
                            { nodeName: 'extProdInstId', nodeType: 'String', rules: [] },
                            { nodeName: 'prodName', nodeType: 'String', rules: [] },
                            { nodeName: 'col6', nodeType: 'String', rules: [] },
                            { nodeName: 'col4', nodeType: 'String', rules: [] },
                            { nodeName: 'addrId', nodeType: 'String', rules: [] },
                            { nodeName: 'col5', nodeType: 'String', rules: [] },
                            { nodeName: 'productInstId', nodeType: 'String', rules: [] },
                            { nodeName: 'col2', nodeType: 'String', rules: [] },
                            { nodeName: 'col3', nodeType: 'String', rules: [] },
                            { nodeName: 'col1', nodeType: 'String', rules: [] },
                            { nodeName: 'orderItemsId', nodeType: 'String', rules: [] },
                            { nodeName: 'subscriberId', nodeType: 'String', rules: [] },
                            { nodeName: 'productInstCode', nodeType: 'String', rules: [] },
                            { nodeName: 'prodType', nodeType: 'String', rules: [] },
                            { nodeName: 'serviceOfferCode', nodeType: 'String', rules: [] },
                            { nodeName: 'custCode', nodeType: 'String', rules: [] },
                            {
                              nodeName: 'attrs',
                              nodeType: 'Array',
                              rules: [],
                              children: [
                                {
                                  nodeName: 'item',
                                  nodeType: 'Object',
                                  rules: [],
                                  children: [
                                    { nodeName: 'attrValueDesc', nodeType: 'String', rules: [] },
                                    { nodeName: 'actionType', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrGroupCode', nodeType: 'String', rules: [] },
                                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                                  ],
                                },
                              ],
                            },
                            { nodeName: 'prodCode', nodeType: 'String', rules: [] },
                            { nodeName: 'actionType', nodeType: 'String', rules: [] },
                            { nodeName: 'regionId', nodeType: 'String', rules: [] },
                            { nodeName: 'prodStatus', nodeType: 'String', rules: [] },
                            { nodeName: 'serviceNo', nodeType: 'String', rules: [] },
                            {
                              nodeName: 'ordFee',
                              nodeType: 'Array',
                              rules: [],
                              children: [
                                {
                                  nodeName: 'item',
                                  nodeType: 'Object',
                                  rules: [],
                                  children: [
                                    { nodeName: 'aliasName', nodeType: 'String', rules: [] },
                                    { nodeName: 'actionType', nodeType: 'String', rules: [] },
                                    { nodeName: 'effDate', nodeType: 'String', rules: [] },
                                    { nodeName: 'price', nodeType: 'String', rules: [] },
                                    { nodeName: 'changeType', nodeType: 'String', rules: [] },
                                    { nodeName: 'feeCode', nodeType: 'String', rules: [] },
                                    { nodeName: 'feeName', nodeType: 'String', rules: [] },
                                    { nodeName: 'discount', nodeType: 'String', rules: [] },
                                    { nodeName: 'productInstId', nodeType: 'Number', rules: [] },
                                    { nodeName: 'expDate', nodeType: 'String', rules: [] },
                                    { nodeName: 'listPrice', nodeType: 'String', rules: [] },
                                    {
                                      nodeName: 'attrs',
                                      nodeType: 'Array',
                                      rules: [],
                                      children: [
                                        {
                                          nodeName: 'item',
                                          nodeType: 'Object',
                                          rules: [],
                                          children: [
                                            {
                                              nodeName: 'attrValueDesc',
                                              nodeType: 'String',
                                              rules: [],
                                            },
                                            {
                                              nodeName: 'attrCode',
                                              nodeType: 'String',
                                              rules: [],
                                            },
                                            {
                                              nodeName: 'endDate',
                                              nodeType: 'String',
                                              rules: [],
                                            },
                                            {
                                              nodeName: 'oldAttrValue',
                                              nodeType: 'String',
                                              rules: [],
                                            },
                                            { nodeName: 'remark', nodeType: 'String', rules: [] },
                                            {
                                              nodeName: 'attrValue',
                                              nodeType: 'String',
                                              rules: [],
                                            },
                                            {
                                              nodeName: 'attrName',
                                              nodeType: 'String',
                                              rules: [],
                                            },
                                            {
                                              nodeName: 'startDate',
                                              nodeType: 'String',
                                              rules: [],
                                            },
                                          ],
                                        },
                                      ],
                                    },
                                  ],
                                },
                              ],
                            },
                            { nodeName: 'extProdCode', nodeType: 'String', rules: [] },
                            { nodeName: 'prodSubType', nodeType: 'String', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'spuType', nodeType: 'Number', rules: [] },
                    {
                      nodeName: 'ordSubscriber',
                      nodeType: 'Object',
                      rules: [],
                      children: [
                        { nodeName: 'serviceType', nodeType: 'String', rules: [] },
                        { nodeName: 'orderItemsId', nodeType: 'String', rules: [] },
                        { nodeName: 'orderId', nodeType: 'String', rules: [] },
                        { nodeName: 'provinceCode', nodeType: 'String', rules: [] },
                        { nodeName: 'extUserId', nodeType: 'String', rules: [] },
                        { nodeName: 'lanId', nodeType: 'String', rules: [] },
                        { nodeName: 'useCustId', nodeType: 'String', rules: [] },
                        { nodeName: 'addrName', nodeType: 'String', rules: [] },
                        { nodeName: 'serviceOfferCode', nodeType: 'String', rules: [] },
                        { nodeName: 'actDate', nodeType: 'String', rules: [] },
                        {
                          nodeName: 'attrs',
                          nodeType: 'Array',
                          rules: [],
                          children: [
                            {
                              nodeName: 'item',
                              nodeType: 'Object',
                              rules: [],
                              children: [
                                { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                                { nodeName: 'endDate', nodeType: 'String', rules: [] },
                                { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                                { nodeName: 'attrName', nodeType: 'String', rules: [] },
                                { nodeName: 'startDate', nodeType: 'String', rules: [] },
                              ],
                            },
                          ],
                        },
                        { nodeName: 'password', nodeType: 'String', rules: [] },
                        { nodeName: 'regionId', nodeType: 'String', rules: [] },
                        { nodeName: 'grade', nodeType: 'String', rules: [] },
                        { nodeName: 'addrId', nodeType: 'String', rules: [] },
                        { nodeName: 'serviceNo', nodeType: 'String', rules: [] },
                        { nodeName: 'brand', nodeType: 'String', rules: [] },
                        { nodeName: 'status', nodeType: 'String', rules: [] },
                      ],
                    },
                    {
                      nodeName: 'orderDiscount',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'discountInfo', nodeType: 'String', rules: [] },
                            { nodeName: 'useIntegration', nodeType: 'Number', rules: [] },
                            { nodeName: 'discountAmount', nodeType: 'Number', rules: [] },
                            { nodeName: 'discountType', nodeType: 'Number', rules: [] },
                          ],
                        },
                      ],
                    },
                    {
                      nodeName: 'ordPayRelation',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'isDefault', nodeType: 'String', rules: [] },
                            { nodeName: 'endDate', nodeType: 'String', rules: [] },
                            { nodeName: 'changeType', nodeType: 'String', rules: [] },
                            { nodeName: 'payitemCodeName', nodeType: 'String', rules: [] },
                            { nodeName: 'payLimit', nodeType: 'String', rules: [] },
                            { nodeName: 'payWay', nodeType: 'String', rules: [] },
                            { nodeName: 'payitemCode', nodeType: 'String', rules: [] },
                            { nodeName: 'accountCycle', nodeType: 'String', rules: [] },
                            { nodeName: 'startDate', nodeType: 'String', rules: [] },
                            { nodeName: 'feeCycle', nodeType: 'String', rules: [] },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'goodsCode', nodeType: 'String', rules: [] },
                    {
                      nodeName: 'ordFee',
                      nodeType: 'Array',
                      rules: [],
                      children: [
                        {
                          nodeName: 'item',
                          nodeType: 'Object',
                          rules: [],
                          children: [
                            { nodeName: 'aliasName', nodeType: 'String', rules: [] },
                            { nodeName: 'actionType', nodeType: 'String', rules: [] },
                            { nodeName: 'effDate', nodeType: 'String', rules: [] },
                            { nodeName: 'price', nodeType: 'String', rules: [] },
                            { nodeName: 'changeType', nodeType: 'String', rules: [] },
                            { nodeName: 'feeCode', nodeType: 'String', rules: [] },
                            { nodeName: 'feeName', nodeType: 'String', rules: [] },
                            { nodeName: 'discount', nodeType: 'String', rules: [] },
                            { nodeName: 'productInstId', nodeType: 'Number', rules: [] },
                            { nodeName: 'expDate', nodeType: 'String', rules: [] },
                            { nodeName: 'listPrice', nodeType: 'String', rules: [] },
                            {
                              nodeName: 'attrs',
                              nodeType: 'Array',
                              rules: [],
                              children: [
                                {
                                  nodeName: 'item',
                                  nodeType: 'Object',
                                  rules: [],
                                  children: [
                                    { nodeName: 'attrValueDesc', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                                    { nodeName: 'remark', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                                  ],
                                },
                              ],
                            },
                          ],
                        },
                      ],
                    },
                    { nodeName: 'skuAttr', nodeType: 'String', rules: [] },
                    { nodeName: 'skuCode', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
          ],
        },
      ],
    },
    { nodeName: 'shipAmount', nodeType: 'Number', rules: [] },
    {
      nodeName: 'orderPromotion',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'promotionDetail', nodeType: 'String', rules: [] },
            { nodeName: 'promotionName', nodeType: 'String', rules: [] },
            { nodeName: 'promotionId', nodeType: 'Number', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'finalAmountEndTime', nodeType: 'String', rules: [] },
    {
      nodeName: 'ordContractOrderRel',
      nodeType: 'Object',
      rules: [],
      children: [
        { nodeName: 'col9', nodeType: 'String', rules: [] },
        { nodeName: 'contractId', nodeType: 'String', rules: [] },
        { nodeName: 'col4', nodeType: 'String', rules: [] },
        { nodeName: 'col5', nodeType: 'String', rules: [] },
        { nodeName: 'col2', nodeType: 'String', rules: [] },
        { nodeName: 'col3', nodeType: 'String', rules: [] },
        { nodeName: 'col1', nodeType: 'String', rules: [] },
      ],
    },
    {
      nodeName: 'orderCusts',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'updateDate', nodeType: 'String', rules: [] },
            { nodeName: 'contactEmail', nodeType: 'String', rules: [] },
            { nodeName: 'regionName', nodeType: 'String', rules: [] },
            { nodeName: 'contactPerson', nodeType: 'String', rules: [] },
            { nodeName: 'lanId', nodeType: 'String', rules: [] },
            { nodeName: 'custLevel', nodeType: 'String', rules: [] },
            { nodeName: 'custName', nodeType: 'String', rules: [] },
            { nodeName: 'custManagerCode', nodeType: 'String', rules: [] },
            { nodeName: 'partyType', nodeType: 'String', rules: [] },
            { nodeName: 'custCode', nodeType: 'String', rules: [] },
            {
              nodeName: 'attrs',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'extCustCode', nodeType: 'String', rules: [] },
            { nodeName: 'custManagerName', nodeType: 'String', rules: [] },
            { nodeName: 'regionId', nodeType: 'String', rules: [] },
            { nodeName: 'custId', nodeType: 'String', rules: [] },
            { nodeName: 'custType', nodeType: 'String', rules: [] },
            { nodeName: 'custAddress', nodeType: 'String', rules: [] },
            { nodeName: 'contactRole', nodeType: 'String', rules: [] },
            {
              nodeName: 'orderCustCert',
              nodeType: 'Object',
              rules: [],
              children: [
                { nodeName: 'picPath', nodeType: 'String', rules: [] },
                { nodeName: 'realnameStat', nodeType: 'String', rules: [] },
                { nodeName: 'realnameDate', nodeType: 'String', rules: [] },
                { nodeName: 'certType', nodeType: 'String', rules: [] },
                { nodeName: 'certAddr', nodeType: 'String', rules: [] },
                { nodeName: 'certId', nodeType: 'String', rules: [] },
                { nodeName: 'certNum', nodeType: 'String', rules: [] },
                { nodeName: 'certOrg', nodeType: 'String', rules: [] },
              ],
            },
            { nodeName: 'contactPhone', nodeType: 'String', rules: [] },
            { nodeName: 'custManagerTel', nodeType: 'String', rules: [] },
            { nodeName: 'lanName', nodeType: 'String', rules: [] },
            { nodeName: 'custStatus', nodeType: 'String', rules: [] },
            { nodeName: 'createDate', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
    {
      nodeName: 'orderAttachment',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'extValues', nodeType: 'Object', rules: [], children: [] },
            { nodeName: 'attachmentSubType', nodeType: 'String', rules: [] },
            { nodeName: 'compressedFile', nodeType: 'Boolean', rules: [] },
            { nodeName: 'attachmentId', nodeType: 'Number', rules: [] },
            { nodeName: 'createTime', nodeType: 'String', rules: [] },
            { nodeName: 'tacheName', nodeType: 'String', rules: [] },
            { nodeName: 'attachmentName', nodeType: 'String', rules: [] },
            { nodeName: 'fileServerType', nodeType: 'String', rules: [] },
            { nodeName: 'fileId', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'channelCode', nodeType: 'String', rules: [] },
    {
      nodeName: 'ordAccount',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'accountCode', nodeType: 'String', rules: [] },
            { nodeName: 'accountName', nodeType: 'String', rules: [] },
            { nodeName: 'orderId', nodeType: 'String', rules: [] },
            { nodeName: 'cityCode', nodeType: 'String', rules: [] },
            { nodeName: 'payMode', nodeType: 'String', rules: [] },
            { nodeName: 'provinceCode', nodeType: 'String', rules: [] },
            { nodeName: 'accountType', nodeType: 'String', rules: [] },
            { nodeName: 'col4', nodeType: 'String', rules: [] },
            { nodeName: 'col2', nodeType: 'String', rules: [] },
            { nodeName: 'col3', nodeType: 'String', rules: [] },
            {
              nodeName: 'attrs',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    { nodeName: 'attrCode', nodeType: 'String', rules: [] },
                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'col1', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'prepayAmount', nodeType: 'String', rules: [] },
    {
      nodeName: 'orderExt',
      nodeType: 'Object',
      rules: [],
      children: [
        { nodeName: 'sellerMobilephone', nodeType: 'String', rules: [] },
        { nodeName: 'extOrderNbr', nodeType: 'String', rules: [] },
        { nodeName: 'regionName', nodeType: 'String', rules: [] },
        { nodeName: 'sellerName', nodeType: 'String', rules: [] },
        { nodeName: 'extPartnerOrderNbr', nodeType: 'String', rules: [] },
        { nodeName: 'lanId', nodeType: 'String', rules: [] },
        { nodeName: 'sourceCenter', nodeType: 'String', rules: [] },
        { nodeName: 'sellerId', nodeType: 'String', rules: [] },
        { nodeName: 'custManagerName', nodeType: 'String', rules: [] },
        { nodeName: 'relatedOrderNbr', nodeType: 'String', rules: [] },
        { nodeName: 'finalAmountEndTime', nodeType: 'String', rules: [] },
        { nodeName: 'isNeedAudit', nodeType: 'Number', rules: [] },
        { nodeName: 'lanName', nodeType: 'String', rules: [] },
        { nodeName: 'channelCode', nodeType: 'String', rules: [] },
        { nodeName: 'merchant', nodeType: 'String', rules: [] },
        { nodeName: 'custManagerCode', nodeType: 'String', rules: [] },
        { nodeName: 'finalAmountStartTime', nodeType: 'String', rules: [] },
        { nodeName: 'provinceId', nodeType: 'String', rules: [] },
        { nodeName: 'buyer', nodeType: 'String', rules: [] },
        { nodeName: 'isSign', nodeType: 'Number', rules: [] },
        { nodeName: 'queueTopic', nodeType: 'String', rules: [] },
        { nodeName: 'groupChannelCode', nodeType: 'String', rules: [] },
        { nodeName: 'regionId', nodeType: 'String', rules: [] },
        { nodeName: 'sourceMachine', nodeType: 'String', rules: [] },
        { nodeName: 'crmOrderNbr', nodeType: 'String', rules: [] },
        { nodeName: 'custManagerTel', nodeType: 'String', rules: [] },
        { nodeName: 'claimStaffCode', nodeType: 'String', rules: [] },
      ],
    },
    {
      nodeName: 'orderGiftCard',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'giftPayAmount', nodeType: 'Number', rules: [] },
            { nodeName: 'giftCardType', nodeType: 'Number', rules: [] },
            { nodeName: 'giftCardNo', nodeType: 'Number', rules: [] },
          ],
        },
      ],
    },
    {
      nodeName: 'orderPayment',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'paymentServiceFee', nodeType: 'String', rules: [] },
            { nodeName: 'payAmount', nodeType: 'String', rules: [] },
            { nodeName: 'payType', nodeType: 'String', rules: [] },
            { nodeName: 'payTime', nodeType: 'String', rules: [] },
            { nodeName: 'totalFee', nodeType: 'String', rules: [] },
            { nodeName: 'chargeType', nodeType: 'String', rules: [] },
            { nodeName: 'discountPrice', nodeType: 'String', rules: [] },
            { nodeName: 'isOnline', nodeType: 'String', rules: [] },
            { nodeName: 'payAccount', nodeType: 'String', rules: [] },
            { nodeName: 'payBank', nodeType: 'String', rules: [] },
            { nodeName: 'payStatus', nodeType: 'String', rules: [] },
            { nodeName: 'payTransactionId', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'orderBusiTypeKind', nodeType: 'String', rules: [] },
    {
      nodeName: 'throughContent',
      nodeType: 'Object',
      rules: [],
      children: [{ nodeName: 'throughContent', nodeType: 'String', rules: [] }],
    },
    {
      nodeName: 'orderDiscount',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'discountInfo', nodeType: 'String', rules: [] },
            { nodeName: 'useIntegration', nodeType: 'Number', rules: [] },
            { nodeName: 'discountAmount', nodeType: 'Number', rules: [] },
            { nodeName: 'discountType', nodeType: 'Number', rules: [] },
          ],
        },
      ],
    },
    { nodeName: 'growth', nodeType: 'Number', rules: [] },
    {
      nodeName: 'ordDiscount',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'discountName', nodeType: 'String', rules: [] },
            { nodeName: 'discountCode', nodeType: 'String', rules: [] },
            { nodeName: 'orderId', nodeType: 'String', rules: [] },
            { nodeName: 'col4', nodeType: 'String', rules: [] },
            { nodeName: 'discountType', nodeType: 'String', rules: [] },
            { nodeName: 'col2', nodeType: 'String', rules: [] },
            { nodeName: 'col3', nodeType: 'String', rules: [] },
            {
              nodeName: 'attrs',
              nodeType: 'Array',
              rules: [],
              children: [
                {
                  nodeName: 'item',
                  nodeType: 'Object',
                  rules: [],
                  children: [
                    {
                      nodeName: 'attrCode',
                      nodeType: 'String',
                      rules: [
                        {
                          type: 'MULTIPLE_VALUE_RULE',
                          expression: 'xxx',
                          variables: {
                            a: [
                              {
                                type: 'Path', // 路径
                                path: ['a', 'b'],
                              },
                              {
                                type: 'ElementPredicator', // 元素断定
                                condition: {
                                  type: 'BinaryExpression',
                                  lhsPath: ['a', 'b', 'd'],
                                  op: 'eq',
                                  rhs: 'B',
                                },
                              },
                              {
                                type: 'Path', // 路径
                                path: ['a', 'b', 'c'],
                              },
                            ],
                          },
                        },
                      ],
                    },
                    { nodeName: 'endDate', nodeType: 'String', rules: [] },
                    { nodeName: 'attrValue', nodeType: 'String', rules: [] },
                    { nodeName: 'attrName', nodeType: 'String', rules: [] },
                    { nodeName: 'startDate', nodeType: 'String', rules: [] },
                  ],
                },
              ],
            },
            { nodeName: 'col1', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
    {
      nodeName: 'orderAttr',
      nodeType: 'Array',
      rules: [],
      children: [
        {
          nodeName: 'item',
          nodeType: 'Object',
          rules: [],
          children: [
            { nodeName: 'attrValueDesc', nodeType: 'String', rules: [] },
            { nodeName: 'attrCode', nodeType: 'String', rules: [] },
            { nodeName: 'endDate', nodeType: 'String', rules: [] },
            { nodeName: 'attrValue', nodeType: 'String', rules: [] },
            { nodeName: 'attrName', nodeType: 'String', rules: [] },
            { nodeName: 'startDate', nodeType: 'String', rules: [] },
          ],
        },
      ],
    },
  ],
};
